public class java20231228 {

    public static void main(String[] args) {
       int a = 10;
       long b = 100l;
       b = a ;      //int ->long 数据范围由小到大，隐式转换
       a = (int)b;  //long ->int 数据范围由大到小，需要强转，否则编译失败


        float f = 3.14F;
        double d = 5.12;
        d = f;          //float -->double 数据范围由小到大，隐式转换
        f =(float) d;   //double -->float 数据范围由大到小，否则编译失败

        a = d ;      //报错，类型不兼容
        a =（int）d;  //int没有double表示的数据范围大，需要强转，小数点之后全部丢弃


        byte b1 = 100;        //100默认为int,没有超过byte范围，隐式转换
        byte b2 = (byte)257;  //257默认为int，超过byte范围，需要显式转换，否则报错

        boolean flag = true;
        a = flag; //编译失败：类型不兼容
        flag = a; //编译失败：类型不兼容

    }
}
